Single server access in a multiple tcp/ip instance environment

ABSTRACT

Methods, systems and computer program products are provided that access a single server application executing on a processing system having multiple TCP/IP instances. The single server application may be accessed by establishing a registration repository containing information sufficient to identify to both the single server application and a client application seeking to access the single server application, one of the multiple TCP/IP instances through which the single server application may be accessed by client applications. In such a case, the registration repository is accessible by the multiple TCP/IP instances and the single server application.

PRIORITY CLAIM

The present application is a continuation of U.S. patent applicationSer. No. 11/032,391, titled, “Single Server Access in a Multiple TCP/IPInstance Environment,” filed on Jan. 10, 2005, the contents of which isincorporated herein by reference in its entirety.

FIELD OF THE INVENTION

The present invention relates to computer systems in general and moreparticularly to computer systems employing the Transmission ControlProtocol/Internet Protocol (TCP/IP) to access server applications.

BACKGROUND OF THE INVENTION

In recent years there has been an increase in interest in the Internetand Internet applications. The Internet is a client-server paradigmwhere clients access server applications to obtain information. Thisproliferation of Internet users has led to many networks employing thesame client-server paradigm in an internal network known as an intranet.These intranets are often built on the same communications protocols asthe Internet. Thus a user or client may communicate with a server on aninternal network or on the Internet in a seamless fashion such that thelocation of the server and access to that server may be transparent to auser.

The communication protocol on which the Internet is based is known asthe Transmission Control Protocol/Internet Protocol (TCP/IP). Thepopularity of the Internet and of intranets has led to the proliferationof TCP/IP throughout the computing community. This proliferation has ledto TCP/IP being utilized on local area networks (LANs), wide areanetworks (WANs) and even on mainframe computers such as theInternational Business Machines Corporation's OS/390 systems.

To communicate using TCP/IP, a computer system typically has a TCP/IPprotocol stack executing on the computer. A TCP/IP protocol stack orTCP/IP instance governs the communications between the client and theserver. If the computer systems capabilities allow, a computer systemmay have multiple TCP/IP instances communicating with multiple clientsand servers. Thus, as is illustrated in FIG. 1, a computer system 22 mayhave multiple TCP/IP instances (illustrated by TCP/IP A 12 and TCP/IP B16) and multiple servers (illustrated by Server A 10 and Server B 14)communicating with multiple clients (illustrated by Client A 18 andClient B 20).

One typical constraint of the client-server model illustrated in FIG. 1,is that applications such as Server A 10 and Server B 14 may not spanmultiple TCP/IP instances. Thus, where multiple TCP/IP instance exist ona single computer system a particular server is limited to the IPaddress domain of the TCP/IP instance to which it is connected. Thus, tosupport clients connecting to the computer system through more than oneof the computer systems TCP/IP instances a duplicate of the servershould be connected to each of the TCP/IP instances. Thus, to make aserver application available to all IP address domains of a computersystem the computer system is generally either limited to a singleTCP/IP instance or to duplicate copies of a server application for eachTCP/IP instance of the computer system.

While in some situations multiple copies of a server application may beacceptable, in certain situations it is not possible to have multiplecopies of a server on a single computer system. Limitations on thenumber of allowable server applications may be imposed architecturallyby the server application or may result from hardware or softwarelimitations for the system. For example, only a single instance of theOS/390 OpenEdition Open System Adapter Support Facility (OSA/SF) may runin a MVS partition although up to 8 TCP/IP instances are allowed. Thus,in order to be available to all clients in a computer system's IP domainthen only a single TCP/IP instance may be utilized on a computer systemwith such a server.

Even if a particular server application allows for multiple instances ina single computer system and the computer system's hardware and softwareare capable of multiple copies of a server there may still bedisadvantages to multiple copies of a server on a single system. Forexample, system resources are still occupied by multiple copies of aserver application. Central Processing Unit (CPU) usage may be increasedas well as storage and memory requirements. Furthermore, synchronizationof multiple copies of a server application to provide consistent serverresponses across multiple TCP/IP instances may also presentdifficulties.

In view of the above discussion, there exists a need for improvement incomputer systems having multiple TCP/IP instances to allow access toserver applications across the IP domain's of multiple TCP/IP instances.

SUMMARY OF THE INVENTION

In light of the limitations of existing client-server systems, it is anobject of the present invention to provide for the access to serverapplications across multiple TCP/IP instances.

A further object of the present invention is to provide access to serverapplications across multiple TCP/IP instances without requiring thesystem resources of replicating the server application.

Another object of the present invention is to provide access acrossmultiple TCP/IP instances to a server application for which multiplecopies cannot be provided on a single computer system.

These and other objects of the present invention are provided bymethods, systems and computer program products that access a singleserver application executing on a processing system having multipleTCP/IP instances. The single server application may be accessed byestablishing a registration repository containing information sufficientto identify to both the single server application and a clientapplication seeking to access the single server application, one of themultiple TCP/IP instances through which the single server applicationmay be accessed by client applications. In such a case, the registrationrepository is accessible by the multiple TCP/IP instances and the singleserver application.

By establishing a registration repository in which clients may determinewhich TCP/IP instance of multiple TCP/IP instances to access to reach asingle server application, the client may connect through that TCP/IPinstance to reach the single server application. Thus, only a singleinstance of the server application may be provided on the computersystem and may be accessed by any client with access to the registrationrepository. Furthermore, because multiple copies of a server applicationare not required there may be fewer resources used to allow access fromall of the IP domains of the computer system. Also, because the multiplecopies of the server application are not require to provide access tothe server applications to clients of multiple TCP/IP instances, thepresent invention allows server application which cannot have multiplecopies to be accessible across multiple TCP/IP instances.

In a particular embodiment of the present invention, the registrationrepository is established by registering a TCP/IP instance with theregistration repository if single server access is requested by a clientapplication utilizing the TCP/IP instance. In such a case, theregistration may include storing an entry identifying an availableTCP/IP instance. A time stamp associated with the entry identifying theavailable TCP/IP instance which identifies when the TCP/IP instance wasregistered with the registration repository may also be stored in theregistration repository.

In a preferred embodiment, the registration repository entry includesthe TCP/IP instance identifier, the function of the server applicationassociated with the TCP/IP instance and protocol information sufficientto allow connection between the TCP/IP instance and the client.

In another embodiment of the present invention entries for a TCP/IPinstance are removed from the registration repository when a TCP/IPinstance is no longer available for connection to the single serverapplication or client access to the single server application. In such acase, the entry may be removed by invalidating the registration of theTCP/IP instance in the registration repository.

In another embodiment of the present invention, the single serverapplication selects a TCP/IP instance from the registration repositoryto be used for connection to the single server application. In aparticular aspect of the present invention, an entry identifying anavailable TCP/IP instance is stored in the registration repository. Atime stamp associated with the entry identifying the available TCP/IPinstance is also stored in the registration repository. Then, theselection of the TCP/IP instance comprises selecting the TCP/IP instancewith the earliest time stamp.

In still another embodiment of the present invention wherein the clientapplication accesses the registration repository to determine the TCP/IPinstance through which the single server application may be accessed.The client application then connects to the single server application byconnecting to the TCP/IP instance through which the single serverapplication may be accessed. In such a case, the client application maydetermine the TCP/IP instance through which the single serverapplication may be accessed utilizing the same procedure by which thesingle server application selects a TCP/IP instance. Furthermore, anentry identifying an available TCP/IP instance and a time stampassociated with the entry identifying the available TCP/IP instance inthe registration repository may be stored in the registrationrepository. Then the access of the registration repository may includeaccessing the registration repository to obtain the time stamp ofentries in the registration repository and selecting the TCP/IP instancewith the earliest time stamp as the TCP/IP instance through which thesingle server application may be accessed.

In another embodiment of the present invention, the registrationrepository is stored in common storage. Accessing the registrationrepository then includes accessing the common storage location of theregistration repository and obtaining from the common storage locationregistration information to determine the TCP/IP instance through whichthe single server application may be accessed. Furthermore, the singleserver application may then be connected to by connecting to thedetermined TCP/IP instance through which the single server applicationmay be accessed. Also, the common storage may be directly accessible bythe client.

In yet another embodiment of the present invention, the common storageis accessed by accessing a first TCP/IP instance to access the commonstorage location of the registration repository. Registrationinformation is then obtained from the common storage location throughthe first TCP/IP instance and the single server application connected tothrough a second TCP/IP instance.

As will further be appreciated by those of skill in the art, the presentinvention may be embodied as a method, apparatus or computer programproduct.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a conventional multiple client/multipleserver system;

FIG. 2 is a block diagram of a client-server system according to thepresent invention;

FIG. 3 is a flow chart illustrating the creation of an entry in aregistration repository according to the present invention;

FIG. 4 is a flow chart illustrating the operation of the presentinvention; and

FIG. 5 is a block diagram of an example system utilizing the presentinvention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention now will be described more fully hereinafter withreference to the accompanying drawings, in which preferred embodimentsof the invention are shown. This invention may, however, be embodied inmany different forms and should not be construed as limited to theembodiments set forth herein; rather, these embodiments are provided sothat this disclosure will be thorough and complete, and will fullyconvey the scope of the invention to those skilled in the art. Likenumbers refer to like elements throughout. As will be appreciated by oneof skill in the art, the present invention may be embodied as methods ordevices. Accordingly, the present invention may take the form of anentirely hardware embodiment, an entirely software embodiment or anembodiment combining software and hardware aspects.

FIG. 2 illustrates a computer system utilizing the present invention. Asseen in FIG. 2, a computer system 35 includes a single serverapplication (Server A 30) and multiple TCP/IP instances (TCP/IP A 32 andTCP/IP B 34). Connected to the TCP/IP instances 32 and 34 are clientapplications (Client A 38 and Client B 39) to the server application 30.The computer system 35 may be any computer system capable of supportingmultiple TCP/IP protocol stacks, however, the present invention isparticularly well suited to mainframe computers such as InternationalBusiness Machines Corporation's OS/390 computer systems utilizing theMultiple Virtual System (MVS) operating system. Thus, as will beappreciated by those of skill in the art, computer system 35 willtypically include a processing unit, random access memory, non-volatilememory, mass storage devices, input devices, output devices andcommunication devices as well as software applications and an operatingsystem to control the various devices and application associated withcomputer system 35.

As is further illustrated in FIG. 2, a registration repository 36 isprovided in computer system 35. The registration repository isaccessible by the TCP/IP instances 32 and 34 as well as the server 30and client applications 38 and 39. The registration repository ispreferably directly accessible by the clients 38 and 39 as isillustrated in FIG. 2, but may also be accessible indirectly through,for example, the TCP/IP instances 32 and 34. The registration repository36 is preferably implemented in common storage of computer system 35.Thus, for example, in an MVS system where the registration repository isimplemented in common storage, a client may directly address the commonstorage associated with the registration repository to retrieve entriesfrom the registration repository. Similarly, the server applicationcould directly access the common storage to retrieve entry information.

In a further aspect of the present invention where the computer system35 is a logical unit in a Sysplex the registration repository could beimplemented in the coupling facility of the Sysplex. Thus, a singleserver application could be shared across logical units of the Sysplexand provide single server access to the IP address domain of all of thelogical units with access to the coupling facility.

In operation, the TCP/IP instances 32 and 34 create entries in theregistration repository uniquely identifying the TCP/IP instance. When aserver application is started it selects a TCP/IP instance from theentries in the registration repository. When a client seeks to access asingle server application 30, the client 39 accesses the registrationrepository 36 and retrieves the information indicating which TCP/IPinstance allows access to the single server application 30. Thisselection process may be accomplished by the clients using the sameselection mechanism as the server applications in selecting from theTCP/IP instances registered with the registration repository. The client39 then connects to the TCP/IP instance 32 with access to the singleserver application 30.

Alternatively, a server application could access the registrationrepository to determine which TCP/IP instances allow single serveraccess and then select one of the TCP/IP instances. The server couldthen update the registration repository to indicate that the serverapplication was associated with the selected TCP/IP instance. Clientswould then search the entries in the registration repository to find anentry identifying the desired server application and then utilize theassociated TCP/IP instance to access the server application. However,such an implementation is essentially a special case of the firstalternative. Accordingly, the detailed operation described below focusesprimarily on the first alternative briefly described above. Those ofskill in the art will understand that the special case may be readilyimplemented once the principles of the general case are understood.

The present invention will now be described with respect to FIG. 3 andFIG. 4 which are flowcharts illustrating the operation of a routingdevice and a master routing device utilizing the present invention. Itwill be understood that each block of the flowchart illustrations, andcombinations of blocks in the flowchart illustrations, can beimplemented by computer program instructions. These program instructionsmay be provided to a processor to produce a machine, such that theinstructions which execute on the processor create means forimplementing the functions specified in the flowchart block or blocks.The computer program instructions may be executed by a processor tocause a series of operational steps to be performed by the processor toproduce a computer implemented process such that the instructions whichexecute on the processor provide steps for implementing the functionsspecified in the flowchart block or blocks.

Accordingly, blocks of the flowchart illustration support combinationsof means for performing the specified functions, combinations of stepsfor performing the specified functions and program instruction means forperforming the specified functions. It will also be understood that eachblock of the flowchart illustration, and combinations of blocks in theflowchart illustration, can be implemented by special purposehardware-based systems which perform the specified functions or steps,or combinations of special purpose hardware and computer instructions.

FIG. 3 illustrates the creation of an entry in the registrationrepository 36 when a TCP/IP instance is started. When a TCP/IP instanceis configured to require access to a single server application, eitherinitially or dynamically after startup of the TCP/IP instance, an entryis added to the registration repository. As seen in FIG. 3, a TCP/IPinstance is established (block 40) and determines in a client requiresaccess to a single server application (block 42). If single serveraccess is not required then the TCP/IP instance enters a wait loop(block 44) until a client request single server access.

If a client initially requests single server access or subsequentlyrequest single server access, then the TCP/IP instance selects a timestamp for incorporation in the registration repository entry (block 46).The time stamp acts as a unique identifier of the TCP/IP instance andprioritizes the TCP/IP instances for selection by clients and serverapplications. The time stamp may be the time the TCP/IP instance wasstarted or when the registration request was made. Whatever manner ofselecting a time stamp is utilized it needs to be the same for allTCP/IP instances.

Alternatively, other methods of providing unique priority for the TCP/IPinstances could be utilized. For example, priority tokens could beselected by TCP/IP instances or a priority count could be establishedand incremented each time a TCP/IP instance is initiated. What isrequired is a manner of identifying TCP/IP instances such that theclient and the server may utilize the same selection procedure to reachthe same selection result. Thus, whatever manner of prioritizing TCP/IPinstances is utilized it should be utilized in the same manner for allTCP/IP instances.

Returning to FIG. 3, after selection of a time stamp, the TCP/IPinstance adds an entry to the registration repository 36 for the TCP/IPinstance (block 48). The entry in the repository preferably includes theTCP/IP instance identifier and protocol information sufficient to allowconnection between the TCP/IP instance and the client. As brieflydiscussed above, the entry may also include the function of the serverapplication associated with the TCP/IP instance.

By creating an entry in the registration repository 36 if a clientrequests access to a single server application, the present inventionassures that at least one TCP/IP instance will be available in theregistration repository 36 for selection by the server application. Forexample, in FIG. 2, if client 38 is the first client associated computersystem 35 that request access to a single server application then uponreceiving the request TCP/IP A 32 will create an entry in registrationrepository 36 to identify that it has received a request for singleserver access and to become available for selection by server 30 foruse. Thus, even if a request for single server access is the firstrequest received a TCP/IP instance will be present in the registrationrepository for use by the server application and the client.Additionally, by registering with the registration repository on a perTCP/IP instance basis, client access to a server application may beallowed or disallowed on a per TCP/IP instance basis.

With respect to the server application, a server application accessesthe registration repository at start-up to select a TCP/IP instance. Ifno TCP/IP instances are identified in the registration repository, theserver enters a wait loop until one is entered. The server then selectsthe TCP/IP instance and connects to that instance. Optionally, theserver may update the registration repository to indicate that theserver is connected to the TCP/IP instance. The server preferablyselects the TCP/IP instance based upon the time stamp of the TCP/IPinstance entry in the registration repository. However, other methods ofselection may be utilized as long as the clients also use the sameselection procedure. If the TCP/IP instance to which the server isconnected terminates, the server re-accesses the registration repositoryto select a new TCP/IP instance for connection.

FIG. 4 illustrates the operation of a client communication utilizing thepresent invention. When a client seeks to access a single serverapplication, the client first accesses the registration repository 36 toretrieve the entry with the earliest time stamp (block 50). The clientwill utilize this entry to attempt to connect to the server. The serveralso accesses the repository to establish connections and uses the sameselection process as clients. Therefore, even if the TCP/IP instance isone which is in the process of terminating, both the client and theserver should eventually select the same TCP/IP instance if the sameselection process is utilized.

After retrieving the entry from the registration repository, the clientdetermines the TCP/IP instance through which a connection may beestablished to the server (block 52). As discussed above, this may bethe TCP/IP instance corresponding to the earliest time stamp entry inthe registration repository. However, other criteria for selecting theTCP/IP instance may be utilized as long as the client and the server usethe same criteria. The client then connects to the server using thedetermined TCP/IP instance (block 54). Such a connection is possiblebecause, as discussed above, the registration entry contains sufficientinformation to allow for a connection between the TCP/IP instance, theclient and the server.

In the event of an error or termination of the TCP/IP instance, theTCP/IP instance notifies the clients and servers utilizing the TCP/IPinstance of the error. The terminating TCP/IP instance is removed fromthe registration repository. The clients and servers then would reaccessthe registration repository to select a different TCP/IP instance forre-establishing connections or wait until an eligible TCP/IP instance isavailable (i.e. registered in the repository). Again, because theclients and servers would utilize the same process for selecting aTCP/IP instance a connection should be capable of being established.

The terms “single server access” and “single server application” havebeen used herein to describe the present invention. As used herein,those terms refer to instance of a server application which spanmultiple TCP/IP instances in that clients from multiple IP domains mayaccess a single instance of a server application.

The present invention may be further understood by way of example. FIG.5 illustrates one computer system in which the present invention may beutilized. As seen in FIG. 5, a computer system utilizes OSA/SF in an MVSpartition. Multiple TCP/IP instances also include SNMP support.

In the example depicted by FIG. 5, the two TCP/IP instances, TCP/IP A 64and TCP/IP B 66, were started with both requiring client access to thesingle server application represented by OSA/SF 62. OSA/SF (Open SystemAdapter/Support Facility) is an application that manages OSA Adapters ona OS/390 system. Only a single instance of OSA/SF can be started per MVSsystem due to architecture constraints.

TCP/IP A 64 is identified in the Repository 68 as the first eligibleTCP/IP instance for single server application access to OSA/SF 62. Thesingle server application, OSA/SF 62 connects to TCP/IP A 64 afteraccessing the Repository 68 to determine that TCP/IP A 64 corresponds tothe entry in the repository with the earliest time stamp.

At some point, two OSA/SF Client Applications, SNMP Agent 70 and SNMPAgent 72 are also started. Each of the client applications, SNMP Agent70 and SNMP Agent 72, connects into their respective TCP/IP instance inorder to receive requests from the associating TCP/IP Networks, 74 and76.

Each TCP/IP instance requires separate SNMP Agents in order to providenetwork management support for each of the respective IP Address domainsfor TCP/IP Network 74 and TCP/IP Network 76. SNMP (Simple NetworkManagement Protocol) is a standard management protocol implemented bymany TCP/IP Hosts. The SNMP Agents handle all of the related SNMPprotocol functions but require access to OSA/SF 62 in order to retrieveand set configuration variables specific to the adapters managed byOSA/SF.

When the SNMP Agent 70 is started, it connects to the single serverapplication OSA/SF 62 via TCP/IP A 64 after accessing the Repository 68to determine that TCP/IP A 64 is the first eligible TCP/IP instance. Theclient application SNMP Agent 72 after accessing the Repository 68 alsoestablishes a connection to the Single Server application OSA/SF 62through TCP/IP A 64. Note that both client applications actually havetwo connections established. The first is to their respective TCP/IPinstance in order to receive and respond to requests from theirrespective TCP/IP Networks 74 and 76. Both SNMP Agent 70 and 72establish a second connection through TCP/IP A 64 in order to gainaccess to the single server application, OSA/SF 62. In FIG. 5, the SNMPAgents (clients) and OSA/SF (server) connections are depicted usingdashed lines. Thus, a single server application such as OSA/SF may beaccessed by multiple IP address domains through multiple TCP/IPinstances where only a single TCP/IP instance is connected directly tothe server application.

In the drawings and specification, there have been disclosed typicalpreferred embodiments of the invention and, although specific terms areemployed, they are used in a generic and descriptive sense only and notfor purposes of limitation, the scope of the invention being set forthin the following claims.

1. A system for accessing a single server application executing on aprocessing system having multiple TCP/IP instances comprising: aprocessor; a registration repository containing information sufficientto identify to both the single server application and a clientapplication seeking to access the single server application, one of themultiple TCP/IP instances through which the single server applicationmay be accessed by client applications and wherein the registrationrepository is accessible by the multiple TCP/IP instances and the singleserver application; and a utility which executes on the processor andprovides means for accessing the registration repository to select aTCP/IP instance for connection to the server application.
 2. The systemaccording to claim 1, further comprising: means for establishing theregistration repository; and means for registering a TCP/IP instancewith the registration repository if single server access is requested bya client application utilizing the TCP/IP instance.
 3. The systemaccording to claim 2, wherein said means for registering comprises thesteps of: storing an entry identifying an available TCP/IP instance; andstoring a time stamp associated with the entry identifying the availableTCP/IP instance which identifies when the TCP/IP instance was registeredwith the registration repository.
 4. The system according to claim 3,wherein the entry identifying the TCP/IP instance includes a TCP/IPinstance identifier and protocol information sufficient to allowconnection between the TCP/IP instance and the client.
 5. The systemaccording to claim 2, further comprising means for removing from theregistration repository a TCP/IP instance which is no longer availablefor connection to the single server application or client access to thesingle server application.
 6. The system according to claim 5, whereinsaid means for removing comprises means for invalidating theregistration of the TCP/IP instance in the registration repository. 7.The system according to claim 1, wherein the single server applicationprovides the means for selecting a TCP/IP instance from the registrationrepository to be used for connection to the single server application.8. The system according to claim 7, further comprising: means forstoring an entry identifying an available TCP/IP instance in theregistration repository; means for storing a time stamp associated withthe entry identifying the available TCP/IP instance in the registrationrepository; and wherein said means for selecting a TCP/IP instancecomprises means for selecting the TCP/IP instance with the earliest timestamp.
 9. The system according to claim 7, wherein the clientapplication provides: means for accessing the registration repository todetermine the TCP/IP instance through which the single serverapplication may be accessed; and means for connecting to the singleserver application by connecting to the TCP/IP instance through whichthe single server application may be accessed.
 10. The system accordingto claim 9, wherein the client application includes means fordetermining the TCP.IP instance through which the single serverapplication may be accessed utilizing the same procedure by which thesingle server application selects a TCP/IP instance.
 11. The systemaccording to claim 9, further comprising: means for storing an entryidentifying an available TCP/IP instance in the registration repository;and means for storing a time stamp associated with the entry identifyingthe available TCP/IP instance in the registration repository; andwherein said means for accessing the registration repository comprises:means for accessing the registration repository to obtain the time stampof entries in the registration repository; and means for selecting theTCP/IP instance with the earliest time stamp as the TCP/IP instancethrough which the single server application may be accessed.
 12. Thesystem according to claim 9, wherein the registration repository isstored in common storage and wherein said means for accessing theregistration repository comprises: means for accessing the commonstorage location of the registration repository; and means for obtainingfrom the common storage location registration information to determinethe TCP/IP instance through which the single server application may beaccessed; and wherein said means for connecting to the single serverapplication comprises means for connecting to the determined TCP/IPinstance through which the single server application may be accessed.13. The system according to claim 12, wherein said common storage isdirectly accessible by the client and wherein said means for accessingthe common storage comprises means for directly accessing the commonstorage.
 14. A system according to claim 12, wherein: said means foraccessing the common storage comprises means for accessing a firstTCP/IP instance to access the common storage location of theregistration repository; said means for obtaining registrationinformation comprises means for obtaining registration information fromthe common storage location through the first TCP/IP instance; and saidmeans for connecting to the single server application comprises meansfor connecting to a second TCP/IP instance through which the singleserver application may be accessed.
 15. A computer program product foraccessing a single server application executing on a processing systemhaving multiple TCP/IP instances comprising: a computer-readable storagemedium having computer-readable program means embodied in said medium,said computer-readable program means comprising: program means forestablishing a registration repository containing information sufficientto identify to both the single server application and a clientapplication seeking to access the single server application, one of themultiple TCP/IP instances through which the single server applicationmay be accessed by client applications and wherein the registrationrepository is accessible by the multiple TCP/IP instances and the singleserver application; and program means for accessing the registrationrepository to select a TCP/IP instance for connection to the serverapplication.
 16. The computer program product according to claim 15,wherein said program means for establishing a registration repositorycomprises program means for registering a TCP/IP instance with theregistration repository if single server access is requested by a clientapplication utilizing the TCP/IP instance.
 17. The computer programproduct according to claim 16, wherein said program means forregistering comprises program means for: storing an entry identifying anavailable TCP/IP instance; and storing a time stamp associated with theentry identifying the available TCP/IP instance which identifies whenthe TCP/IP instance was registered with the registration repository. 18.The computer program product according to claim 17, wherein the entryidentifying the TCP/IP instance includes a TCP/IP instance identifierand protocol information sufficient to allow connection between theTCP/IP instance and the client.
 19. The computer program productaccording to claim 16, further comprising program means for removingfrom the registration repository a TCP/IP instance which is no longeravailable for connection to the single server application or clientaccess to the single server application.
 20. The computer programproduct according to claim 19, wherein program means for removingcomprises program means for invalidating the registration of the TCP/IPinstance in the registration repository.
 21. The computer programproduct according to claim 15, wherein the single server applicationprovides the program means for selecting a TCP/IP instance from theregistration repository to be used for connection to the single serverapplication.
 22. The computer program product according to claim 21,further comprising: program means for storing an entry identifying anavailable TCP/IP instance in the registration repository and programmeans for storing a time stamp associated with the entry identifying theavailable TCP/IP instance in the registration repository; and whereinsaid program means for selecting a TCP/IP instance comprises programmeans for selecting the TCP/IP instance with the earliest time stamp.23. The computer program product according to claim 21, wherein theclient application provides: program means for accessing theregistration repository to determine the TCP/IP instance through whichthe single server application may be accessed; and program means forconnecting to the single server application by connecting to the TCP/IPinstance through which the single server application may be accessed.24. The computer program product according to claim 23, wherein theclient application provides program means for determining the TCP.IPinstance through which the single server application may be accessedutilizing the same procedure by which the single server applicationselects a TCP/IP instance.
 25. The computer program product according toclaim 23, further comprising: program means for storing an entryidentifying an available TCP/IP instance in the registration repository;and program means for storing a time stamp associated with the entryidentifying the available TCP/IP instance in the registrationrepository; and wherein said program means for accessing theregistration repository comprises: program means for accessing theregistration repository to obtain the time stamp of entries in theregistration repository and program means for selecting the TCP/IPinstance with the earliest time stamp as the TCP/IP instance throughwhich the single server application may be accessed.
 26. The computerprogram product according to claim 23, wherein the registrationrepository is stored in common storage and wherein said program meansfor accessing the registration repository comprises: program means foraccessing the common storage location of the registration repository;and program means for obtaining from the common storage locationregistration information to determine the TCP/IP instance through whichthe single server application may be accessed; and wherein said programmeans for connecting to the single server application comprises programmeans for connecting to the determined TCP/IP instance through which thesingle server application may be accessed.
 27. The computer programproduct according to claim 26, wherein said common storage is directlyaccessible by the client and wherein said program means for accessingthe common storage comprises program means for directly accessing thecommon storage.
 28. The computer program product according to claim 26,wherein said program means for accessing the common storage comprisesprogram means for accessing a first TCP/IP instance to access the commonstorage location of the registration repository; wherein said programmeans for obtaining registration information comprises program means forobtaining registration information from the common storage locationthrough the first TCP/IP instance; and wherein said program means forconnecting to the single server application comprises program means forconnecting to a second TCP/IP instance through which the single serverapplication may be accessed.